import UIKit

@available(iOS 5.0, *)
extension QKC where AA :UIPageViewController {
     open func delegate_qk_s(_ delegate:  UIPageViewControllerDelegate?) -> QKC<AA,YY,ZZ, UIPageViewControllerDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UIPageViewControllerDelegate?>{
		 self +^ self.value.delegate
	}

		// If nil, user gesture-driven navigation will be disabled.
     open func dataSource_qk_s(_ dataSource:  UIPageViewControllerDataSource? ) -> QKC<AA,YY,ZZ, UIPageViewControllerDataSource? >{
		return link(next: dataSource).then_QK { $0.value.dataSource = dataSource }
	}
     open func dataSource_qk_g() -> QKC<AA,YY,ZZ, UIPageViewControllerDataSource? >{
		 self +^ self.value.dataSource
	}

    open func transitionStyle_qk_g() -> QKC<AA,YY,ZZ, UIPageViewController.TransitionStyle >{
		 self +^ self.value.transitionStyle
	}

    open func navigationOrientation_qk_g() -> QKC<AA,YY,ZZ, UIPageViewController.NavigationOrientation >{
		 self +^ self.value.navigationOrientation
	}

		// If transition style is 'UIPageViewControllerTransitionStylePageCurl', default is 'UIPageViewControllerSpineLocationMin', otherwise 'UIPageViewControllerSpineLocationNone'.
    open func spineLocation_qk_g() -> QKC<AA,YY,ZZ, UIPageViewController.SpineLocation >{
		 self +^ self.value.spineLocation
	}

	// If 'UIPageViewControllerSpineLocationMid' is set, 'doubleSided' is set to 'YES'. Setting 'NO' when spine location is mid results in an exception.
		// Default is 'NO'.
    open func isDoubleSided_qk_s(_ isDoubleSided:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isDoubleSided).then_QK { $0.value.isDoubleSided = isDoubleSided }
	}
    open func isDoubleSided_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isDoubleSided
	}

	// Only populated if transition style is 'UIPageViewControllerTransitionStylePageCurl'.
    open func gestureRecognizers_qk_g() -> QKC<AA,YY,ZZ, [UIGestureRecognizer] >{
		 self +^ self.value.gestureRecognizers
	}

    open func viewControllers_qk_g() -> QKC<AA,YY,ZZ, [UIViewController]? >{
		 self +^ self.value.viewControllers
	}

	// For transition style 'UIPageViewControllerTransitionStylePageCurl', if 'doubleSided' is 'YES' and the spine location is not 'UIPageViewControllerSpineLocationMid', two view controllers must be included, as the latter view controller is used as the back.
    open func setViewControllers_qk_f(_ viewControllers: [UIViewController]?, direction: UIPageViewController.NavigationDirection, animated: Bool, completion: ((Bool) -> Void)? = nil) -> QKC<AA,YY,ZZ, [UIViewController]?>{
		 self +^ self.value.setViewControllers(viewControllers, direction:direction, animated:animated, completion:completion) +^ viewControllers
	}

}

